Method, medium, and system for providing a recommendation of a media item

ABSTRACT

Providing a recommendation of a media item. Media item identifiers and corresponding nonzero media item attribute strengths for a target media item attribute are retrieved from a database. Each of the retrieved media item attribute strengths are randomized, resulting in randomized media item attribute strengths. One of the media item identifiers is selected according to predetermined selection criteria. A recommendation of a media item corresponding to the selected media item identifier is transmitted to a user device over a network.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.12/776,924, filed May 10, 2010 (now pending), the entire contents ofwhich are incorporated by reference herein.

BACKGROUND

1. Field

Example aspects of the present invention generally relate to media itemrecommendations, and more particularly to systems, methods, and computerprogram products for providing a recommendation of a media item.

2. Related Art

The digitization of music, movies, and games, as well as the improvementin electronic delivery techniques, have changed the way consumersexperience such media content. Consumers can download digital music,movies, or games via the Internet with the click of a mouse, and canenjoy them at their convenience. Consumers can also have media contentstreamed from a Web site to a consumer device, such as a computer, atelevision, or portable device, upon demand.

In addition, the variety of media content available to consumers todayis wider than ever. Consumers can browse vast collections of music,movies, and games via Internet or television browsers to identify aparticular media item to download or stream. Locating desired mediaitems within these collections, however, can be difficult given theirenormity.

To avoid the need for consumers to browse these vast collections,content providers provide consumers with recommendations of media items.Recommending media items to consumers promotes the discovery of newmedia items and increases consumer satisfaction with the contentprovider.

One conventional approach to providing consumers with recommendations ofmedia items has been to compute an explicit numerical similarity foreach pair of media items based on underlying media item attributes.Media items are then recommended based on the computed similarities.This approach, however, requires substantial computing resources and isinefficient for vast collections of media items.

BRIEF DESCRIPTION

Given the foregoing, it would be useful to have an efficient system forproviding recommendations of media items.

The example embodiments described herein meet the above-identified needsby providing systems, methods, and computer program products forproviding a recommendation of a media item. The system includes aprocessor that retrieves, from a database, an identifier of a firstmedia item rated by a target user, user identifiers of users havingprovided media item ratings for the first media item, and the media itemratings provided by the users, correspondingly. Each of the media itemratings is randomized, resulting in randomized media item ratings. Auser identifier corresponding to a maximum of the randomized media itemratings is selected from the user identifiers. Additional media itemratings associated with the selected user identifier are retrieved fromthe database. Each of the additional media item ratings are randomized,resulting in additional randomized media item ratings. An identifier ofa recommended media item corresponding to a maximum of the randomizedmedia item ratings and the additional randomized media item ratings isselected. Metadata associated with the recommended media item istransmitted to a user device over a network.

In another aspect, the processor identifies a plurality of media itemrecommendations for the target user, and computes frequencies ofoccurrence for each identified media item recommendation, and transmits,to the user device over the network, a media item recommendationcorresponding to a maximum of the frequencies of occurrence.

In yet another aspect, randomizing media item ratings includes at leastone of adding degrees of randomization to the media item ratings,subtracting degrees of randomization from the media item ratings,multiplying degrees of randomization by the media item ratings, anddividing degrees of randomization by the media item ratings,correspondingly, wherein the degrees of randomization include at leastone of an integer and a real-valued number.

Further features and advantages, as well as the structure and operation,of various example embodiments of the present invention are described indetail below with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The features and advantages of the example embodiments presented hereinwill become more apparent from the detailed description set forth belowwhen taken in conjunction with the drawings.

FIG. 1 is a system diagram of an exemplary media item recommendationsystem in which some embodiments are implemented.

FIG. 2 is a user-item diagram illustrating information stored in auser-item database.

FIG. 3 is a flowchart diagram illustrating an exemplary procedure forproviding a media item recommendation by using a network of users andmedia items.

FIG. 4 is an item-attribute diagram illustrating information stored inan item-attribute database.

FIG. 5 is a flowchart diagram illustrating an exemplary procedure forproviding a media item recommendation by using a network of media itemsand media item attributes.

FIG. 6 is a block diagram of a general and/or special purpose computersystem, in accordance with some embodiments.

DETAILED DESCRIPTION I. Definitions

Some terms are defined below in alphabetical order for easy reference.These terms are not rigidly restricted to these definitions. A term maybe further defined by its use in other sections of this description.

“Database” means a collection of data organized in such a way that acomputer program may quickly select desired pieces of the data. Adatabase is an electronic filing system. In some implementations, theterm “database” may be used as shorthand for “database managementsystem”.

“Degree of randomization” generally means a numerical value indicatingan extent to which an original numerical value (e.g., a media itemrating, a media item attribute strength, etc.) has been randomized.Randomization is described in further detail below.

“Device” means software, hardware, or a combination thereof. A devicemay sometimes be referred to as an apparatus. Examples of a deviceinclude without limitation a software application such as MicrosoftWord™, a laptop computer, a database, a server, a display, a computermouse, and a hard disk. Each device is configured to carry out one ormore steps of the method of storing an internal identifier in metadata.

“Link” means an association between two or more objects or elements inmemory. A link can be, for example, a pointer or a variable thatcontains the address of a location in memory, where the location is thestarting point of an allocated object or the element of an array. Thememory may be located on a database or a database system “Linking” meansassociating (e.g., by pointing to) objects in memory.

“Media item” means any item of media content, such as a song, a movie, agame, a television show, and music or videos of various types. A mediaitem can be recorded in many different formats, and may have manydifferent versions.

“Media item attribute” means any characteristic of a media item. Eachmedia item attribute corresponds to a particular media item attributecategory.

“Media item attribute category” means a grouping of related media itemattributes. Example media item attribute categories and media itemattributes for music include cognitive attributes (e.g., simplicity,storytelling quality, melodic emphasis, vocal emphasis, speech likequality, strong beat, good groove, fast pace), emotional attributes(e.g., intensity, upbeatness, aggressiveness, relaxing, mellowness,sadness, romance, broken heart), aesthetic attributes (e.g., smoothvocals, soulful vocals, high vocals, sexy vocals, powerful vocals, greatvocals), social behavioral attributes (e.g., easy listening, wild danceparty, slow dancing, workout, shopping mall), genre attributes (e.g.,alternative, blues, country, electronic/dance, folk, gospel, jazz,Latin, new age, R&B/soul, rap/hip hop, reggae, rock), sub-genreattributes (e.g., blues, gospel, motown, stax/memphis, philly, doo-wop,funk, disco, old school, blue-eyed soul, adult contemporary, quietstorm, crossover, dance/techno, electro/synth, new jack swing,retro/alternative, hip hop, rap), instrumental/vocal attributes (e.g.,instrumental, vocal, female vocalist, male vocalist), backup vocalattributes (e.g., female vocalist, male vocalist), instrument attributes(e.g., most important instrument, second most important instrument),etc.

Examples of media item attribute categories and attributes for moviesinclude genre (e.g., action, animation, children and family, classics,comedy, documentary, drama, faith and spirituality, foreign, highdefinition, horror, independent, musicals, romance, science fiction,television, thrillers), release date (e.g., within past six months,within past year, 1980s), etc.

Other media item attribute categories and media item attributes arecontemplated and are within the scope of the embodiments describedherein.

“Media item attribute strength” means a numerical value assigned to amedia item to indicate the degree to which the media item ischaracterized by a particular media item attribute. Media item attributestrengths may be integers, real-valued numbers, and/or the like. Examplemedia item attribute strengths include strengths from one (the mediaitem is not characterized by the media item attribute at all) to five(the media item is characterized by the media item attribute very much).

“Media item rating” means a numerical value indicating the degree towhich a user enjoys a particular media item. Media item ratings may beexplicitly assigned by a user to a media item. For example, users canrate media items on a scale from one (the user did not enjoy the mediaitem at all) to five (the user enjoyed the media item very much). Mediaitem ratings may also be implicitly computed by aggregating theinteraction of a user with media items on a Web site. For example, thefact that a user selected to skip playback of a particular media itemmay be used to compute a low media item rating for that media item.

“Metadata” generally means data that describes data. More particularly,metadata may be used to describe the contents of digital recordings.Such metadata may include, for example, a track name, a song name,artist information (e.g., name, birth date, discography), albuminformation (e.g., album title, review, track listing, sound samples),relational information (e.g., similar artists and albums, genre) and/orother types of supplemental information such as advertisements, links orprograms (e.g., software applications), and related images. Metadata mayalso include a program guide listing of the songs or other audio contentassociated with multimedia content. Conventional optical discs (e.g.,CDs, DVDs, Blu-ray Discs) do not typically contain metadata. Metadatamay be associated with a digital recording (e.g., song, album, movie, orvideo) after the digital recording has been ripped from an optical disc,converted to another digital audio format and stored on a hard drive.

“Network” means a connection between any two or more computers, whichpermits the transmission of data. A network may be any combination ofnetworks, including without limitation the Internet, a local areanetwork, a wide area network, a wireless network, and a cellularnetwork.

“Randomization” generally means a procedure of randomly modifying anoriginal numerical value, such as a media item rating, a media itemattribute strength, and the like, resulting in a randomized numericalvalue. An example randomization procedure includes adding a degree ofrandomization, such as a number randomly selected from a finite range ofnumbers, to an original numerical value. Other example randomizationprocedures include performing other arithmetical calculations, such assubtraction, multiplication, or division, on random numbers and originalnumerical values. Randomization is described in further detail below.

“Server” means a software application that provides services to othercomputer programs (and their users), in the same or another computer. Aserver may also refer to the physical computer that has been set asideto run a specific server application. For example, when the softwareApache HTTP Server is used as the Web server for a company's Web site,the computer running Apache is also called the Web server. Serverapplications can be divided among server computers over an extremerange, depending upon the workload.

“Software” means a computer program that is written in a programminglanguage that may be used by one of ordinary skill in the art. Theprogramming language chosen should be compatible with the computer onwhich the software application is to be executed and, in particular,with the operating system of that computer. Examples of suitableprogramming languages include without limitation Object, Pascal, C, C++and Java. Further, the functions of some embodiments, when described asa series of steps for a method, could be implemented as a series ofsoftware instructions for being operated by a processor, such that theembodiments could be implemented as software, hardware, or a combinationthereof. Computer-readable media are discussed in more detail in aseparate section below.

“Song” means a musical composition. A song is typically recorded onto atrack by a record label (e.g., recording company). A song may have manydifferent versions, for example, a radio version and an extendedversion.

“System” means a device or multiple coupled devices. A device is definedabove.

“User” means a consumer, client, and/or client device in a marketplaceof products and/or services.

“User device” (e.g., a client, a client device, a user computer) is ahardware system, a software operating system and/or one or more softwareapplication programs. A user device may refer to a single computer or toa network of interacting computers. A user device may be the client partof a client-server architecture. A user device typically relies on aserver to perform some operations. Examples of a user device includewithout limitation a television, a CD player, a DVD player, a Blu-rayDisc player, a personal media device, a portable media player, an iPod™,a Zoom Player, a laptop computer, a palmtop computer, a smart phone, acell phone, a mobile phone, an MP3 player, a digital audio recorder, adigital video recorder, an IBM-type personal computer (PC) having anoperating system such as Microsoft Windows™, an Apple™ computer havingan operating system such as MAC-OS, hardware having a JAVA-OS operatingsystem, and a Sun Microsystems Workstation having a UNIX operatingsystem.

“Web browser” means any software program which can display text,graphics, or both, from Web pages on Web sites. Examples of a Webbrowser include without limitation Mozilla Firefox™ and MicrosoftInternet Explorer™.

“Web page” means any documents written in mark-up language includingwithout limitation HTML (hypertext mark-up language) or VRML (virtualreality modeling language), dynamic HTML, XML (extended mark-uplanguage) or related computer languages thereof, as well as to anycollection of such documents reachable through one specific Internetaddress or at one specific Web site, or any document obtainable througha particular URL (Uniform Resource Locator).

“Web server” refers to a computer or other electronic device which iscapable of serving at least one Web page to a Web browser. An example ofa Web server is a Yahoo™ Web server.

“Web site” means at least one Web page, and more commonly a plurality ofWeb pages, virtually coupled to form a coherent group.

II. Overview

Systems, methods, apparatus and computer-readable media are provided forrecommending a media item. In one aspect, a processor retrieves, from adatabase, an identifier of a first media item rated by a target user,user identifiers of users having provided media item ratings for thefirst media item, and the media item ratings provided by the users,correspondingly. Each of the media item ratings is randomized, resultingin randomized media item ratings. A user identifier corresponding to amaximum of the randomized media item ratings is selected from the useridentifiers. Additional media item ratings associated with the selecteduser identifier are retrieved from the database. Each of the additionalmedia item ratings are randomized, resulting in additional randomizedmedia item ratings. An identifier of a recommended media itemcorresponding to a maximum of the randomized media item ratings and theadditional randomized media item ratings is selected. Metadataassociated with the recommended media item is transmitted to a userdevice over a network.

In another aspect, the processor identifies a plurality of media itemrecommendations for the target user, and computes frequencies ofoccurrence for each identified media item recommendation, and transmits,to the user device over the network, a media item recommendationcorresponding to a maximum of the frequencies of occurrence.

In yet another aspect, randomizing media item ratings includes at leastone of adding degrees of randomization to the media item ratings,subtracting degrees of randomization from the media item ratings,multiplying degrees of randomization by the media item ratings, anddividing degrees of randomization by the media item ratings,correspondingly, wherein the degrees of randomization include at leastone of an integer and a real-valued number.

Exemplary aspects and embodiments are now described in more detailherein in terms of a recommendation device that executes program code toidentify media item recommendations and provide the media itemrecommendations to a user device over a network. This is for convenienceonly and is not intended to limit the application of the presentdescription. In fact, after reading the following description, it willbe apparent to one skilled in the relevant art(s) how to implement thefollowing invention in alternative embodiments such as, for example, byusing a recommendation device that is incorporated within a contentsource to audibly and/or visibly reproduce a recommended media item fora user.

III. System Architecture

FIG. 1 is a system diagram of an exemplary media item recommendationsystem 100 in which some embodiments are implemented. The system 100includes a recommendation device 101, a network 109, a user device 110,and, optionally, a content source 111.

The recommendation device 101 includes a processor 107, which iscommunicatively coupled through a communication infrastructure (notshown) to a communications interface 108, a memory 106, and a storagedevice 102. In general, the recommendation device 101 provides the userdevice 110 with recommendations of media items over the network 109. Asdescribed in further detail below with respect to FIGS. 3 and 5, theprocessor 107 executes instructions to identify a media item identifierstored in the storage device 102 and recommend the corresponding mediaitem to a user of the user device 110. In some embodiments, theprocessor 107 uses the memory 106 as temporary storage during executionof the instructions.

The storage device 102 (also sometimes referred to as “secondarymemory”) includes a user-item database 103 and an item-attributedatabase 104.

The user-item database 103 is a collection of data representing users,media items, and the associations or links between users and mediaitems. In particular, the user-item database 103 stores user profiles,which include user identifiers, a list of media items rated by each userand the corresponding media item ratings. The information stored in theuser-item database 103 can be represented as a user-item diagram, whichis described in further detail below with respect to FIG. 2.

Media item ratings, which are defined above, may be explicitly orimplicitly determined. In an exemplary embodiment, media item ratingsare selected by users from a scale, such as a scale from one (denotingthat the user does not enjoy the media item at all) to five (denotingthat the user enjoys the media item very much). Users input media itemratings into the user-item database 203 via the user device 110 over thenetwork 109. Alternatively, or in addition, the processor 107 retrievesmedia item ratings from a commercially available database of media itemratings and stores them in the user-item database 203. In general, theprocessor 107 identifies a media item to recommend to a particular userby using data within the user-item database 103, as described in furtherdetail below in connection with FIGS. 2 and 3.

The item-attribute database 104 is a collection of data representingmedia items, media item attributes, and the associations or linksbetween media items and media item attributes. More particularly, theitem-attribute database 104 includes media item profiles correspondingto a particular media item. Each media item profile associates a uniquemedia item identifier with its media item attribute categories, mediaitem attributes, and numerical media item attribute strengths assignedto each media item attribute. The information stored in theitem-attribute database 104 can be represented by an item-attributediagram, which is described in further detail below with respect to FIG.4. In general, the processor 107 uses the item-attribute database 104 toidentify a media item to recommend to a user according to a particularmedia item attribute, as described in further detail below in connectionwith FIG. 5.

The user-item database 103 and the item-attribute database 104 may becombined into a single database or divided into multiple distinctdatabases and still be within the scope of the embodiments describedherein.

The storage device 102 may also include, for example, a hard disk driveand/or a removable storage drive, representing a disk drive, a magnetictape drive, an optical disk drive, etc. As will be appreciated, thestorage device 102 may include a computer-readable storage medium havingstored thereon computer software and/or data.

In alternative embodiments, the storage device 102 may include othersimilar devices for allowing computer programs or other instructions tobe loaded into the recommendation device 101. Such devices may include,for example, a removable storage unit and an interface, a programcartridge and cartridge interface such as that found in video gamedevices, a removable memory chip such as an erasable programmable readonly memory (EPROM), or programmable read only memory (PROM) andassociated socket, and other removable storage units and interfaces,which allow software and data to be transferred from the removablestorage unit to the recommendation device 101.

The communications interface 108 provides the recommendation device 101with connectivity to the network 109, which may be a proprietarynetwork, the Internet, or the like. In particular, the communicationsinterface 108 enables the recommendation device 101 to communicaterecommendations of media items to the user device 110 via the network109. The communications interface 108 also allows software and data tobe transferred between the recommendation device 101 and externaldevices. Examples of the communications interface 108 may include amodem, a network interface such as an Ethernet card, a communicationsport, a Personal Computer Memory Card International Association (PCMCIA)slot and card, etc. Software and data transferred via the communicationsinterface 108 are in the form of signals which may be electronic,electromagnetic, optical, or other signals capable of being received bythe communications interface 108. These signals are provided to and/orfrom the communications interface 108 via a communications path, such asa channel. This channel carries signals and may be implemented by usingwire, cable, fiber optics, a telephone line, a cellular link, an RFlink, and/or other suitable communications channels.

The user device 110 is a device having a user-interface through whichrecommendation of media items are presented to a user. Examples of theuser device 110 include a personal computer, a laptop computer, atelevision, a portable media player, etc. A user also can interface withthe user device 110 to request recommendations from the recommendationdevice 101, input media item ratings over the network 109, or interactwith any components of the system 100, etc.

In some embodiments, the user device 110 audibly and/or visiblyreproduces media content for a user. In these embodiments, the mediaitems recommended by the recommendation device 101 can be provided tothe user device 110 by the content source 111.

IV. Collaborative Filtering-Based Recommendations A. Overview

In general, collaborative filtering is performed by evaluating mediaitem ratings obtained from a group of reviewers and using the ratings todetermine a media item to recommend to a target user. In particular, auser-item database is queried to identify media items having media itemratings input by other users with preferences similar to the preferencesof the target user, as described in further detail below with respect toFIGS. 2 and 3.

B. User-Item Database

FIG. 2 is a user-item diagram 200 illustrating information stored in auser-item database, such as the user-item database 103. As describedabove with respect to FIG. 1, the user-item database 103 includes userprofiles for each user, with each user profile having a correspondingunique user identifier. An example of such a user profile is shown belowin Table 1.

TABLE 1 User ID 1 Optional User Attribute(s) Media Item ID 1 Media ItemRating 1 Media Item ID 2 Media Item Rating 2 Media Item ID 3 Media ItemRating 3

Each user profile associates a user identifier with media itemidentifiers of media items the corresponding user has rated, as well asnumerical media item ratings the user has assigned to the rated mediaitems. These associations are illustrated in the user-item diagram 200by links that connect user identifiers 201 a, 201 b, 201 c, 201 d, 201e, 201 f, 201 g, 201 h, 201 i (collectively 201) to media itemidentifiers 202 a, 202 b, 202 c, 202 d, 202 e, 202 f, 202 g, 202 h, 202i, 202 j, 202 k, 202 l, 202 m, 202n (collectively 202).

As described in further detail below with respect to FIG. 3, thesolid-lined links in the user-item diagram 200 represent links to mediaitem identifiers and user identifiers selected by the processor 107during the implementation of procedure 300. The long-dashed links in theuser-item diagram 200 represent links to media item identifiers and useridentifiers retrieved, but not selected, by the processor 107 during theimplementation of procedure 300. The short-dashed links in the user-itemdiagram 200 represent links to media item identifiers and useridentifiers that have not been retrieved by the processor 107 during theimplementation of procedure 300.

Adjacent to the links in the user-item diagram 200 are numbers thatrepresent the media item ratings 203 a, 203 b, 203 c, 203 d, 203 e, 203f, 203 g, 203 h, 203 i, 203 j, 203 k, 203 l, 203 m, 203 n, 203 o, 203 p,203 q, 203 r, 203 s, 203 t, 203u, 203 v, 20 w, 203 x, 203 y, 203 z, 203aa (collectively 203). The media item ratings 203 illustrated in theuser-item diagram 200 include degrees of randomization, which aredescribed in further detail below.

C. Collaborate Filtering-Based Recommendation Process

FIG. 3 is a flowchart diagram illustrating an exemplary procedure 300for providing a media item recommendation by using a user-item diagram,such as the user-item diagram 200.

The user 201 a, which is also sometimes referred to as a target user, isthe user for which the recommendation device 101 provides a media itemrecommendation. Referring to FIGS. 1-3, initially, at block 301, theprocessor 107 retrieves a list of all the identifiers of media items 202a and 202 b that have been rated by the target user 201 a as well as thecorresponding media item ratings 203 a and 203 b the target user 201 ahas assigned to each rated media item 202 a and 202 b (also sometimescollectively referred to as “target user preferences”).

At block 302, the processor 107 randomizes each media item rating byadding a degree of randomization, which, in an exemplary embodiment, isa number randomly selected from a finite range of numbers and added tothe user-provided media item ratings. An example finite range from whichthe random number is selected is a range from zero to fifty percent ofthe highest media item rating (e.g., from zero to two for a scale of oneto five). The example media item ratings 203 shown in FIG. 2 areselected by users from a scale of one to five and include degrees ofrandomization (not shown) ranging from zero to two. Thus, the randomizedmedia item ratings 203 of FIG. 2 range from one to seven.

Media item rating inaccuracies, which may sometimes be referred to as amargin of error, result from various factors such as mistaken orunintentional media item ratings, mood swings of users, the lack ofgranularity of the discrete rating scale, etc. In the case of media itemratings implicitly computed from user interactions with computersystems, the margin of error can be particularly large. The effects ofmedia item rating inaccuracies are reduced by the randomization. Inaddition, because the procedure 300 proceeds on the path having thehighest media item rating, randomizing the media item ratings ensureswider sampling over paths in the user-item diagram 200, particularlypaths having high media item ratings but slightly less than the highestpossible media item rating. Randomization also enables the procedure 300to encounter media items that do not have the highest media itemratings, but which may nonetheless lead to other highly rated mediaitems that provide good recommendations. Additionally, randomizationpromotes a wide variety of media item recommendations. Withoutrandomization, media items which have not been rated very highly wouldrarely be recommended. With randomization, however, media items whichhave not been highly rated may become more likely to be recommendedafter a degree of randomization has been added. For example, if usersrated media items on a discrete scale from one to five, most often onlymedia items having ratings of five would be recommended. If those mediaitems were randomized, however, some media items having ratings of threeor four may become ratings of five after being randomized, thusincreasing their chance of being recommended.

For illustrative purposes, randomization uses the same units as theratings. Other types of rating factors, however, can be added to theratings as well by using, for example, normalization or constantfactors, which need not be linear.

At block 303, the processor 107 selects, from the list of media items202 a and 202 b rated by the target user 201 a, an identifier of themedia item 202 a to which the target user 201 a has assigned the highest(randomized) media item rating 203 a, which is seven in this example.The processor 107 thus identifies a media item 202 a that the targetuser 201 a enjoys very much.

At block 304, the processor 107 retrieves identifiers of all the users201 b, 201 c, 201 d (other than the identifier of the target user 201 a)who also have rated the media item 202 a that was selected at block 303.

At block 305, the processor 107 randomizes each of the media itemratings 203 c and 203 d that the users 201 b and 201 c, respectively,have assigned to the media item 202 a. Randomization is described infurther detail above with respect to block 302. As described above, themedia item ratings 203 c and 203 d depicted in FIG. 2, which wereselected by users 201 b and 201 c from a scale of one to five, have beenrandomized to a scale of one to seven.

At block 306, the processor 107 selects, from a list of all useridentifiers that have been retrieved thus far (other than any useridentifier that has already been selected), an identifier of the user201 b corresponding to the highest randomized media item rating 203 c,which is seven in this example. In this way, the processor 107 links thetarget user 201 a with the user 201 b having similar media itempreferences, e.g., that has assigned a high media item rating to themedia item 202 a, which the target user 201 a also has rated highly.

At block 307, the processor 107 retrieves identifiers of all the othermedia items 202 c and 202 d that have been rated by the user 201 bselected at block 306, as well as the media item ratings 203 f and 203 gthat user 201 b has assigned to the media items 202 c and 202 d,respectively.

At block 308, the processor 107 randomizes each media item rating 203 fand 203 g, as described in further detail above with respect to block302. As described above, the media item ratings 203 f and 203 g depictedin FIG. 2, which were selected by user 201 b from a scale of one tofive, have been randomized to a scale of one to seven.

At block 309, the processor 107 selects, from a list of media itemidentifiers that have been retrieved thus far (other than any media itemidentifiers that has already been selected), an identifier of the mediaitem 202 d corresponding to the highest randomized media item rating 203g, which is five in this example.

In another embodiment, at block 306, the processor 107 selects, from alist of user identifiers retrieved at block 304, an identifier of theuser 201 b corresponding to the highest randomized media item rating 203c. In addition, or alternatively, at block 309, the processor 107selects, from a list of media item identifiers retrieved at block 307,an identifier of the media item 202 d corresponding to the highestrandomized media item rating 203 g.

1. Recommendation Depth

Recommendation depth is the number of iterations of blocks 304, 305,306, 307, 308, 309 that are performed. The number of steps defines thedepth of the process. The media item 202 d represents an outputcorresponding to one iteration of blocks 304 through 309, e.g., arecommendation depth of one. At block 310, the processor 107 determineswhether to step deeper into the user-item diagram 200 to recommend anadditional media item 202. With each additional increment ofrecommendation depth, an additional media item is potentiallyrecommended to the target user 201 a. The higher the recommendationdepth, the higher the likelihood that media item(s) recommended to thetarget user 201 a was previously unknown to the target user 201 a. Therecommendation depth thus affects the discoverability of new media itemsthrough recommendation.

In one embodiment, once a user 201 or media item 202 of the user-itemdiagram 200 has been selected by the processor 107 during a giveniteration of procedure 300, the processor 107 cannot select that user201 or media item 202 until another iteration of procedure 300 isinitiated. In this way, redundant recommendations are avoided.

If the processor 107 determines at block 310 not to step deeper into theuser-item diagram 200, then the processor 107 communicates arecommendation of the media item 202 d to the target user 201 a via theuser device 110 over the network 109 and the procedure 300 ends.Alternatively, the processor 107 can communicate to the user device 110recommendations of all the media items 202 c, 202 d, 202 e, 202 f, 202g, 202 h, 20 i, 202 j, 202 k, 202 l, 202 m, 202 n encountered duringprocedure 300 (excluding the media items 202 a and 202 b rated by thetarget user 201 a).

If the processor determines at block 310 to step deeper into theuser-item diagram 200, then the processor 107 presents a recommendationof the media item 202 d to the target user 201 a and then repeats theprocedures at blocks 304 through 309 to recommend an additional mediaitem to the target user 201 a.

In one embodiment, the processor 107 repeatedly performs the proceduresof blocks 304 through 309 and outputs a subset of the media itemsselected by the processor 107 across multiple performances of theprocedure of block 309. For example, the processor 107 performs theprocedures of blocks 304 through 309 ten times resulting in tenpotential media item recommendations, randomly recommends five out ofthe ten media items, and disregards the other five media items.

2. Additional Iterations

At block 311, the processor 107 determines whether to perform additionaliterations of the procedure 300 for the target user 201 a to identifyadditional media item recommendations and/or to improve the accuracy ofthe recommendations. If the processor 107 determines at block 311 not toperform additional iterations of the procedure 300 for the target user201 a then the procedure 300 ends.

If the processor 107 determines at block 311 to perform additionaliterations of the procedure 300 for the target user 201 a then theprocessor 107 repeats the procedures of blocks 301, 302, 303, 304, 305,306, 307, 308, 309, 310, 311 to identify additional potential media itemrecommendations.

In one embodiment, the processor 107 records in the memory 106identifiers of the media items selected at block 309 across multipleiterations of the procedure 300 and then determines which of the mediaitems corresponding to the recorded identifiers to recommend to thetarget user 201 a. The processor 107 outputs to the user device 110 arecommendation of the media item 203 corresponding to the identifierrecorded in the memory 106 that has the highest frequency of occurrencesacross the iterations.

In yet another embodiment, the processor 107 computes the average mediaitem rating of each media item having an identifier recorded in thememory 106 and outputs to the user device 110 a recommendation of themedia item that corresponds to the highest average media item rating.

Alternatively, the processor 107 computes the average media item ratingof each media item having an identifier recorded in the memory 106 andthen adds weighting factors to the average media item ratings inproportion to their frequency of occurrence across the iterations. Theprocessor 107 then outputs to the user device 110 a recommendation ofthe media item that has a media item rating having the highest weightedaverage media item rating.

In another aspect, the processor 107 computes the average media itemrating of each media item having an identifier recorded in the memory106 and then adds weighting factors to the average media item ratings inproportion to their distance, in recommendation depth, from the targetuser 201 a. The processor 107 then outputs to the user device 110 arecommendation of the media item that has a media item rating having thehighest weighted average media item rating.

In some embodiments, each user profile also includes user attributes,such as user age, user sex, user country, user region, user hometown,and/or the like. In this way, the processor 107 can weight item ratingsas more relevant for a target user. For example, in one embodiment, eachmedia item profile also includes a user age, and the processor 107 addsweighting factors to the rankings in proportion to the difference in agebetween the user and the target user 201 a. In this way, media itemrecommendations are provided to the target user 201 a by users who areclose in age to the target user 201 a.

In other embodiments, the user profile also includes rating data, suchas a date that each media item was rated, a quantity of media items thathave been rated by each user, etc. In this way, the processor 107 candeem more recent media item ratings as more relevant than older mediaitem ratings by, e.g., adding a weight to each media item rating that isproportional to how recent the media item rating is. In particular, inone embodiment, the user profile also includes a date of ranking foreach ranking, and the processor 107 adds weighting factors to therankings in proportion to how recent the ranking is. In this way, oldermedia item ratings, which may be less relevant to the target user 201 a,are less likely to be relied upon for media item recommendations. Thetarget user 201 a is provided with media item recommendations of mediaitems that have been more recently rated, and thus likely are morerelevant to the preferences of the target user 201 a.

V. Content-Based Recommendations A. Overview

In general, the processor 107 provides content-based recommendations byidentifying media items having media item attributes similar to themedia item attribute preferences of a target user. If the target userindicates a preference for a particular media item attribute, then theprocessor 107 recommends media items having a high media item attributestrength for that particular media item attribute, e.g., media itemsthat are strongly characterized by that attribute.

B. Item-Attribute Network

FIG. 4 is an item-attribute diagram illustrating information stored inan item-attribute database, such as the item-attribute database 104. Asdescribed above with respect to FIG. 1, the item-attribute database 104includes media item profiles for each media item, with each media itemprofile having a corresponding unique media item identifier. An exampleof such a media item profile is shown below in Table 2.

TABLE 2 Media Item ID 1 Media Item Attribute ID 1 Media Item RatingAttribute Strength 1 Media Item Attribute ID 2 Media Item RatingAttribute Strength 2 Media Item Attribute ID 3 Media Item RatingAttribute Strength 3Each media item profile associates a media item identifier of thecorresponding media item with all of the corresponding media itemattributes, as well as the media item attribute strength assigned toeach media item attribute. These associations are illustrated in theitem-attribute diagram 400 by links that connect media item identifiers402 a, 402 b, 402 c, 402 d, 402 e, 402 f, 402 g (collectively 402) tomedia item attribute identifiers 401 a, 401 b, 401 c, 401 d(collectively 401).

As described in further detail below with respect to FIG. 5, thesolid-lined links in the item-attribute diagram 400 represent links tomedia item identifiers and media item attribute identifiers selected bythe processor 107 during the implementation of procedure 500. Thelong-dashed links in the item-attribute diagram 400 represent links tomedia item identifiers and media item attribute identifiers retrieved,but not selected, by the processor 107 during the implementation ofprocedure 500. The short-dashed links in the item-attribute diagram 400represent links to media item identifiers and media item attributeidentifiers that have not been retrieved by the processor 107 during theimplementation of procedure 500.

Adjacent to the links in the item-attribute diagram 400 are numbers thatrepresent the media item attribute strengths 403 a, 403 b, 403 c, 403 d,403 e, 403 f, 403 g, 403 h, 403 i, 403 j, 403 k (collectively 403). Themedia item attribute strengths 403 illustrated in the item-attributediagram 400 include degrees of randomization, as described in furtherdetail above with respect to block 302 of FIG. 3.

As described above in connection with FIG. 1, each media item attributedenotes a characteristic of the media item and corresponds to a mediaitem attribute category. Examples of media item attribute categories andattributes for music include cognitive attributes (e.g., simplicity,storytelling quality, melodic emphasis, vocal emphasis, speech likequality, strong beat, good groove, fast pace), emotional attributes(e.g., intensity, upbeatness, aggressiveness, relaxing, mellowness,sadness, romance, broken heart), aesthetic attributes (e.g., smoothvocals, soulful vocals, high vocals, sexy vocals, powerful vocals, greatvocals), social behavioral attributes (e.g., easy listening, wild danceparty, slow dancing, workout, shopping mall), genre attributes (e.g.,alternative, blues, country, electronic/dance, folk, gospel, jazz,Latin, new age, R&B/soul, rap/hip hop, reggae, rock), sub-genreattributes (e.g., blues, gospel, motown, stax/memphis, philly, doo-wop,funk, disco, old school, blue-eyed soul, adult contemporary, quietstorm, crossover, dance/techno, electro/synth, new jack swing,retro/alternative, hip hop, rap), instrumental/vocal attributes (e.g.,instrumental, vocal, female vocalist, male vocalist), backup vocalattributes (e.g., female vocalist, male vocalist), instrument attributes(e.g., most important instrument, second most important instrument),etc.

Examples of media item attribute categories and media item attributesfor movies include genre (e.g., action, animation, children and family,classics, comedy, documentary, drama, faith and spirituality, foreign,high-definition, horror, independent, musicals, romance, sciencefiction, television, thrillers), release date (e.g., within past sixmonths, within past year, 1980s), etc.

Other media item attribute categories and media item attributes arecontemplated and are within the scope of the embodiments describedherein.

C. Content-Based Recommendation Process

FIG. 5 is a flowchart diagram illustrating an exemplary procedure 500for providing a media item recommendation by using an item-attributediagram, such as the item-attribute diagram 400. In general, theprocessor 107 implements the procedure 500 to provide content-basedrecommendations by identifying media item recommendations based on theassociations between media item attributes of multiple media items.

Referring to FIGS. 1, 4, and 5, the procedure 500 begins with a targetmedia item attribute 401 a determined to be preferred by a target user(not shown). In one embodiment, the target media item attribute isselected by the target user via the user device 110 and input into therecommendation device 101 over the network 109. Alternatively, thetarget media item attribute 401 a can be selected at random, or selectedbased on a recorded history of the media items preferred by the targetuser. In yet another embodiment, the target media item attribute(s) canbe selected as the attribute(s) linked to a media item the target useris interested in.

Users and/or professional rating personnel input media item attributestrengths for media items via the user device 110 over the network 109.In one embodiment, the media item attribute strengths are selected on ascale of real-valued numbers or integers, such as a scale from one(denoting that the media item is not characterized by the media itemattribute at all) to five (denoting that the media item is characterizedby the media item attribute very much). In yet another aspect, the mediaitem attribute strengths 403 a, 403 b, 403 c, 403 d, 403 e, 403 f, 403g, 403 h, 403 i, 403 j, 403 k (collectively 403) depicted in FIG. 4 arederived from averages of the media item attribute strengths that havebeen input on a scale of one to five by multiple users for each mediaitem-attribute pair.

At block 501, the processor 107 retrieves identifiers of all the mediaitems 402 a, 402 b, 402 c that have a nonzero media item attributestrength 403 a, 403 b, 403 c for the target media item attribute 401 a.

At block 502, the processor 107 randomizes each of the media itemattribute strengths 403a through 403 c, as discussed above in furtherdetail with respect to block 302 of FIG. 3. The example media itemratings 403 shown in FIG. 4 were selected by users from a scale of oneto five and include degrees of randomization (not shown) ranging fromzero to two. Thus, the randomized media item ratings 403 of FIG. 4 rangefrom one to seven.

At block 503, the processor 107 selects an identifier of a media itemaccording to predetermined selection criteria and outputs arecommendation of the media item to the user device 110 over the network109. For example, if the highest media item attribute strength is usedas the predetermined selection criteria, then the processor 107 selectsan identifier of the media item 402 a that corresponds to the highest ofthe randomized media item attribute strengths 403 a, which is six inthis case. In this way, the processor 107 identifies the media item 402a that is most strongly characterized by the target media item attribute401a.

Alternatively, if the target media item attribute 401 a was selected asbeing a media item attribute of a target media item (not shown), thenthe predetermined selection criteria may command the processor 107 toselect an identifier of the media item having a media item attributestrength that is closest in value to the media item attribute strengthof the target media item attribute 401 a for the target media item. Inthis way, the processor 107 identifies the media item that is mostsimilar to the target media item, in terms of the media item attributestrength of the target media item attribute 401 a.

Block 504 represents multiple distinct embodiments. In one embodiment,after the processor 107 outputs to the user device 110 over the network109 a recommendation of the media item corresponding to the identifierselected at block 503, the procedure 500 ends.

In another embodiment, blocks 501, 502, 503 of the procedure 500 arerepeated to output to the user device 110 an additional media itemrecommendation according to the same target media item attribute 401 a.In this case, at each iteration of the procedures of blocks 501 through503, the processor 107 excludes the previously recommended media itemsfrom the item-attribute diagram 400 to avoid redundant recommendations.

In yet a further embodiment, the procedure 500 proceeds to block 505 toprovide a recommendation of a media item according to a media itemattribute that is distinct from the target media item attribute 401 a.This procedure is sometimes also referred to as media itemattribute-hopping. At block 505, the processor 107 retrieves identifiersof all the other media item attributes (excluding the target media itemattribute 401 a) and media item attribute strengths that correspond tothe media item selected at block 503. For example, if the media itemidentifier 402 a was selected at block 503 then the processor 107retrieves all the identifiers of the media item attributes 401 b and 401c and the media item attribute strengths 403 d and 403 e that correspondto the selected media item 402 a.

At block 506, the processor 107 selects, for the media item 402 aselected at block 503, an identifier of a media item attribute accordingto predetermined selection criteria. For example, if the highest mediaitem attribute strength is used as the predetermined selection criteria,then the processor 107 selects an identifier of the media item attribute401 b that corresponds to the highest of the randomized media itemattribute strengths 403 d, which is six in this case. In this way, theprocessor 107 identifies the most distinguishing media item attribute401 b of the media item 402 a.

Alternatively, if the target media item attribute 401 a was selected asbeing a media item attribute of a target media item (not shown), thenthe predetermined selection criteria may command the processor 107 toselect, at block 506, an identifier of the media item attribute having amedia item attribute strength that is closest in value to the media itemattribute strength of that media item attribute for the target mediaitem. In this way, the processor 107 identifies the media item attributefor which the media item 402 a selected at block 503 and the targetmedia item have the most similar media item attribute strengths.

In another embodiment, at block 506, the predetermined selectioncriteria commands the processor 107 to select a media item attributeidentifier in the same media item attribute category as the target mediaitem attribute 401 a. For example, if the target media item attributecategory is genre and the target media item attribute 401 a is rock,then the processor 107 can select at block 506 another media itemattribute identifier within the genre category, such as southern rock.

In another aspect, at block 506, the predetermined selection criteriacommand the processor 107 to randomly select a media item attributeidentifier. In this way, the processor 107 increases the variety ofrecommendations and promotes the discovery of new media items.

At block 507, the processor 107 retrieves all the identifiers of mediaitems that have a nonzero media item attribute strength for the mediaitem attribute that was selected at block 506.

At block 508, the processor 107 randomizes, as described above withrespect to block 302 of FIG. 3, each of the media item attributestrengths corresponding to the media item identifiers that wereretrieved at block 507.

At block 509, the processor 107 selects an identifier of a media itemaccording to predetermined selection criteria and outputs arecommendation of the media item to the user device 110 over the network109. For example, if the highest media item attribute strength is usedas the predetermined selection criteria, then the processor 107 selectsan identifier of the media item 402 e that corresponds to the highest ofthe randomized media item attribute strengths 403 h, which is six inthis example. In this way, the processor 107 identifies the media item402 e that is most strongly characterized by the previous media itemattribute 401 b.

Alternatively, the predetermined selection criteria may command theprocessor 107 to select an identifier of the media item having a mediaitem attribute strength of the media item attribute 401 b that isclosest in value to the media item attribute strength 403 d of the mediaitem attribute 401 b for the previous media item 402 a. In this way, theprocessor 107 identifies the media item 402 e that is most similar tothe previous media item 402 a, in terms of the media item attributestrength of the media item attribute 401 b under consideration.

Block 510 represents multiple distinct embodiments. In one embodiment,after the processor 107 outputs to the user device 110 over the network109 a recommendation of the media item corresponding to the identifierselected at block 509, the procedure 500 is complete. In anotherembodiment, blocks 505, 506, 507, 508, 509 of the procedure 500 arerepeated to output an additional media item recommendation by using anadditional media item attribute.

In yet another aspect, the additional iterations of the procedure 500are performed for the target media item attribute 401 a to analyze andidentify additional potential media item recommendations. In this case,the processor 107 records in the memory 106 the media item identifiersselected at blocks 503 and/or 509, as the case may be, across multipleiterations of the procedure 500 and then determines which of thecorresponding media items to recommend to the user device 110.

In some embodiments, the processor 107 outputs to the user device 110 arecommendation of the media item having an identifier recorded in thememory 106 that has the highest frequency of occurrences across theiterations.

Alternatively, the processor 107 computes the average media itemattribute strength of each media item attribute having an identifierrecorded in the memory 106 and outputs to the user device 110 arecommendation of the media item based on the media item attribute thathas the highest average media item attribute strength.

In yet another aspect, the processor 107 computes the average media itemattribute strength of each media item attribute having an identifierrecorded in the memory 106 and then adds weighting factors to theaverage media item attribute strengths in proportion to their frequencyof occurrence across the iterations. The processor 107 outputs to theuser device 110 a recommendation of the media item having a media itemattribute strength equal to the weighted average media item attributestrength.

VI. Exemplary Computer Readable Medium Implementation

The example embodiments described above such as, for example, the system100, the diagrams 200, 400, the procedures 300, 500, or any part(s) orfunction(s) thereof, may be implemented by using hardware, software or acombination thereof and may be implemented in one or more computersystems or other processing systems. However, the manipulationsperformed by these example embodiments were often referred to in terms,such as entering, which are commonly associated with mental operationsperformed by a human operator. No such capability of a human operator isnecessary in any of the operations described herein. For example, therecommendation device 101 may automatically recommend programs withoutreceiving a user's input through the user device 110. In other words,the operations may be completely implemented with machine operations.Useful machines for performing the operation of the example embodimentspresented herein include general purpose digital computers or similardevices.

FIG. 6 is a high-level block diagram of a general and/or special purposecomputer system 600, in accordance with some embodiments. The computersystem 600 may be, for example, a user device, a user computer, a clientcomputer and/or a server computer, among other things.

The computer system 600 preferably includes without limitation aprocessor device 610, a main memory 625, and an interconnect bus 605.The processor device 610 may include without limitation a singlemicroprocessor, or may include a plurality of microprocessors forconfiguring the computer system 600 as a multi-processor system. Themain memory 625 stores, among other things, instructions and/or data forexecution by the processor device 610. If the system is partiallyimplemented in software, the main memory 625 stores the executable codewhen in operation. The main memory 625 may include banks of dynamicrandom access memory (DRAM), as well as cache memory.

The computer system 600 may further include a mass storage device 630,peripheral device(s) 640, portable storage medium device(s) 650, inputcontrol device(s) 680, a graphics subsystem 660, and/or an outputdisplay 670. For explanatory purposes, all components in the computersystem 600 are shown in FIG. 6 as being coupled via the bus 605.However, the computer system 600 is not so limited. Devices of thecomputer system 600 may be coupled through one or more data transportmeans. For example, the processor device 610 and/or the main memory 625may be coupled via a local microprocessor bus. The mass storage device630, peripheral device(s) 640, portable storage medium device(s) 650,and/or graphics subsystem 660 may be coupled via one or moreinput/output (I/O) buses. The mass storage device 630 is preferably anonvolatile storage device for storing data and/or instructions for useby the processor device 610. The mass storage device 630 may beimplemented, for example, with a magnetic disk drive or an optical diskdrive. In a software embodiment, the mass storage device 630 ispreferably configured for loading contents of the mass storage device630 into the main memory 625.

The portable storage medium device 650 operates in conjunction with anonvolatile portable storage medium, such as, for example, a compactdisc read only memory (CD-ROM), to input and output data and code to andfrom the computer system 600. In some embodiments, the software forstoring an internal identifier in metadata may be stored on a portablestorage medium, and may be inputted into the computer system 600 via theportable storage medium device 650. The peripheral device(s) 640 mayinclude any type of computer support device, such as, for example, aninput/output (I/O) interface configured to add additional functionalityto the computer system 600. For example, the peripheral device(s) 640may include a network interface card for interfacing the computer system600 with a network 620.

The input control device(s) 680 provide a portion of the user interfacefor a user of the computer system 600. The input control device(s) 680may include a keypad and/or a cursor control device. The keypad may beconfigured for inputting alphanumeric and/or other key information. Thecursor control device may include, for example, a mouse, a trackball, astylus, and/or cursor direction keys. In order to display textual andgraphical information, the computer system 600 preferably includes thegraphics subsystem 660 and the output display 670. The output display670 may include a cathode ray tube (CRT) display and/or a liquid crystaldisplay (LCD). The graphics subsystem 660 receives textual and graphicalinformation, and processes the information for output to the outputdisplay 670.

Each component of the computer system 600 may represent a broad categoryof a computer component of a general and/or special purpose computer.Components of the computer system 600 are not limited to the specificimplementations provided here.

Portions of the invention may be conveniently implemented by using aconventional general purpose computer, a specialized digital computerand/or a microprocessor programmed according to the teachings of thepresent disclosure, as will be apparent to those skilled in the computerart. Appropriate software coding may readily be prepared by skilledprogrammers based on the teachings of the present disclosure.

Some embodiments may also be implemented by the preparation ofapplication-specific integrated circuits, field programmable gatearrays, or by interconnecting an appropriate network of conventionalcomponent circuits.

Some embodiments include a computer program product. The computerprogram product may be a storage medium or media having instructionsstored thereon or therein which can be used to control, or cause, acomputer to perform any of the processes of the invention. The storagemedium may include without limitation a floppy disk, a mini disk, anoptical disc, a Blu-ray Disc, a DVD, a CD-ROM, a micro-drive, amagneto-optical disk, a ROM, a RAM, an EPROM, an EEPROM, a DRAM, a VRAM,a flash memory, a flash card, a magnetic card, an optical card,nanosystems, a molecular memory integrated circuit, a RAID, remote datastorage/archive/warehousing, and/or any other type of device suitablefor storing instructions and/or data.

Stored on any one of the computer readable medium or media, someimplementations include software for controlling both the hardware ofthe general and/or special computer or microprocessor, and for enablingthe computer or microprocessor to interact with a human user or othermechanism utilizing the results of the invention. Such software mayinclude without limitation device drivers, operating systems, and userapplications. Ultimately, such computer readable media further includessoftware for performing aspects of the invention, as described above.

Included in the programming and/or software of the general and/orspecial purpose computer or microprocessor are software modules forimplementing the processes described above.

While various example embodiments of the present invention have beendescribed above, it should be understood that they have been presentedby way of example, and not limitation. It will be apparent to personsskilled in the relevant art(s) that various changes in form and detailcan be made therein. Thus, the present invention should not be limitedby any of the above described example embodiments, but should be definedonly in accordance with the following claims and their equivalents.

In addition, it should be understood that the figures are presented forexample purposes only. The architecture of the example embodimentspresented herein is sufficiently flexible and configurable, such that itmay be utilized and navigated in ways other than that shown in theaccompanying figures.

Further, the purpose of the Abstract is to enable the U.S. Patent andTrademark Office and the public generally, and especially thescientists, engineers and practitioners in the art who are not familiarwith patent or legal terms or phraseology, to determine quickly from acursory inspection the nature and essence of the technical disclosure ofthe application. The Abstract is not intended to be limiting as to thescope of the example embodiments presented herein in any way. It is alsoto be understood that the procedures recited in the claims need not beperformed in the order presented.

1. A method for providing a recommendation of a media item, the method comprising: retrieving, from a database, media item identifiers and corresponding nonzero media item attribute strengths for a target media item attribute; randomizing each of the retrieved media item attribute strengths, resulting in randomized media item attribute strengths; selecting, according to predetermined selection criteria, one of the media item identifiers; and transmitting, to a user device over a network, a recommendation of a media item corresponding to the selected media item identifier.
 2. The method of claim 1, wherein the selecting step comprises at least one of selecting a media item identifier corresponding to a maximum of the randomized media item attribute strengths, and selecting a media item identifier corresponding to a randomized media item attribute strength closest in value to a media item attribute strength of the target media item attribute.
 3. The method of claim 2, wherein randomizing an attribute strength includes applying a random number to the attribute strength by performing an arithmetical calculation.
 4. The method of claim 1, wherein the user device includes at least one of a personal computer, a laptop computer, a television, a phone and a portable media player.
 5. The method of claim 1, further comprising: identifying a plurality of media item recommendations for a target user, wherein the plurality of media item recommendations correspond to a plurality of media item identifiers; computing, for each of the plurality of media item identifiers, a total number of occurrences of the media item identifier; and transmitting, to the user device, a media item recommendation of a media item identifier corresponding to a highest value of the total numbers of occurrences.
 6. The method of claim 1, further comprising: identifying a plurality of recommended media items for a target user by performing a plurality of iterations of at least one of the steps of claim
 1. 7. The method of claim 1, further comprising: retrieving, from the database, attributes that correspond to the selected media item identifier and corresponding nonzero additional media item attribute strengths; randomizing each of the retrieved additional media item attribute strengths corresponding to the selected medium item identifier, resulting in additional randomized media item attribute strengths; selecting, according to predetermined selection criteria, one of the retrieved attributes; retrieving, from the database, additional media item identifiers and corresponding nonzero media item attribute strengths for the selected media item attribute; randomizing each of the retrieved media item attribute strengths for the selected media item attribute, resulting in randomized media item attribute strengths for the selected media item attribute; selecting, according to predetermined selection criteria, one of the additional media item identifiers; and transmitting, to a user device over a network, a recommendation of a media item corresponding to the selected one of the additional media item identifiers.
 8. The method of claim 7, further comprising identifying a plurality of recommended media items for a target user by performing a plurality of iterations of at least one of the steps of claim
 7. 9. A system for providing a recommendation of a media item, the system including at least one processor operable to: retrieve, from a database, media item identifiers and corresponding nonzero media item attribute strengths for a target media item attribute; randomize each of the retrieved media item attribute strengths, resulting in randomized media item attribute strengths; select, according to predetermined selection criteria, one of the media item identifiers; and transmit, to a user device over a network, a recommendation of a media item corresponding to the selected media item identifier.
 10. The system of claim 9, wherein the selecting step comprises at least one of selecting a media item identifier corresponding to a maximum of the randomized media item attribute strengths, and selecting a media item identifier corresponding to a randomized media item attribute strength closest in value to a media item attribute strength of the target media item attribute.
 11. The system of claim 10, wherein randomizing an attribute strength includes applying a random number to the attribute strength by performing an arithmetical calculation.
 12. The system of claim 9, wherein the user device includes at least one of a personal computer, a laptop computer, a television, a phone and a portable media player.
 13. The system of claim 9, wherein the at least one processor is further operable to: identify a plurality of media item recommendations for a target user, wherein the plurality of media item recommendations correspond to a plurality of media item identifiers; compute, for each of the plurality of media item identifiers, a total number of occurrences of the media item identifier; and transmit, to the user device, a media item recommendation of a media item identifier corresponding to a highest value of the total numbers of occurrences.
 14. The system of claim 9, wherein the at least one processor is further operable to: identify a plurality of recommended media items for a target user by performing a plurality of iterations of at least one of the steps of claim
 9. 15. The system of claim 9, wherein the at least one processor is further operable to: retrieve, from the database, attributes that correspond to the selected media item identifier and corresponding nonzero additional media item attribute strengths; randomize each of the retrieved additional media item attribute strengths corresponding to the selected medium item identifier, resulting in additional randomized media item attribute strengths; select, according to predetermined selection criteria, one of the retrieved attributes; retrieve, from the database, additional media item identifiers and corresponding nonzero media item attribute strengths for the selected media item attribute; randomize each of the retrieved media item attribute strengths for the selected media item attribute, resulting in randomized media item attribute strengths for the selected media item attribute; select, according to predetermined selection criteria, one of the additional media item identifiers; and transmit, to a user device over a network, a recommendation of a media item corresponding to the selected one of the additional media item identifiers.
 16. The system of claim 15, wherein the at least one processor is further operable to identify a plurality of recommended media items for a target user by performing a plurality of iterations of at least one of the steps of claim
 15. 17. A computer-readable medium having stored thereon sequences of instructions, the sequences of instructions including instructions, which, when executed by one or more processors, cause the one or more processors to perform: retrieving, from a database, media item identifiers and corresponding nonzero media item attribute strengths for a target media item attribute; randomizing each of the retrieved media item attribute strengths, resulting in randomized media item attribute strengths; selecting, according to predetermined selection criteria, one of the media item identifiers; and transmitting, to a user device over a network, a recommendation of a media item corresponding to the selected media item identifier.
 18. The computer-readable medium of claim 17, wherein the selecting step comprises at least one of selecting a media item identifier corresponding to a maximum of the randomized media item attribute strengths, and selecting a media item identifier corresponding to a randomized media item attribute strength closest in value to a media item attribute strength of the target media item attribute.
 19. The computer-readable medium of claim 18, wherein randomizing an attribute strength includes applying a random number to the attribute strength by performing an arithmetical calculation.
 20. The computer-readable medium of claim 19, wherein the user device includes at least one of a personal computer, a laptop computer, a television, a phone and a portable media player. 